From 9365af4cd30381056ac55da3b4f097eb6427f9ea Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Thu, 22 Jun 2006 14:37:53 +0000 Subject: [PATCH] keep the cursor visible when the size changes. Fixes bug #344874. 2006-06-22 Michael Natterer * gtk/gtktextview.c (gtk_text_view_size_allocate): keep the cursor visible when the size changes. Fixes bug #344874. --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ gtk/gtktextview.c | 18 ++++++++++++++---- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 91419c107f..16717eb5ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-06-22 Michael Natterer + + * gtk/gtktextview.c (gtk_text_view_size_allocate): keep the cursor + visible when the size changes. Fixes bug #344874. + 2006-06-22 Matthias Clasen * gtk/gtkpintjob.h: Add a note about updating the registration. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 91419c107f..16717eb5ad 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2006-06-22 Michael Natterer + + * gtk/gtktextview.c (gtk_text_view_size_allocate): keep the cursor + visible when the size changes. Fixes bug #344874. + 2006-06-22 Matthias Clasen * gtk/gtkpintjob.h: Add a note about updating the registration. diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 45c250ccab..ae55bc8e85 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -3127,11 +3127,21 @@ gtk_text_view_size_allocate (GtkWidget *widget, */ gtk_text_view_flush_first_validate (text_view); - /* widget->window doesn't get auto-redrawn as the layout is computed, so has to - * be invalidated - */ if (size_changed && GTK_WIDGET_REALIZED (widget)) - gdk_window_invalidate_rect (widget->window, NULL, FALSE); + { + GtkTextBuffer *buffer; + + /* widget->window doesn't get auto-redrawn as the layout is + * computed, so has to be invalidated + */ + gdk_window_invalidate_rect (widget->window, NULL, FALSE); + + /* keep cursor visible */ + buffer = get_buffer (text_view); + gtk_text_view_scroll_to_mark (text_view, + gtk_text_buffer_get_mark (buffer, "insert"), + 0.0, FALSE, 0.0, 0.0); + } } static void -- 2.30.2